package controllcivil.interfaces;

import java.util.List;

import javax.ejb.Local;
import javax.faces.model.SelectItem;

import controllcivil.bean.Usuario;
import controllcivil.variaveis.EnumFuncao;

@Local
public interface IUsuario extends IGeneric<Usuario>{

	public boolean isUsuarioValido(String login, String senha) throws Exception;
	
	public Usuario getUsuario(String login, String senha) throws Exception;
	
	public List<Usuario> getListUsuarioPorFuncao(EnumFuncao funcao);
	
	/**
	 * Recupera uma lista de usuarios de acordo com a {@link EnumFuncao} passadada como paramentro
	 * 
	 * @param funcao					Funcao do usuario
	 * @return							Lista de usuarios de acordo com a funcao especificada
	 */
	public List<Usuario> recuperarListUsuarioPorFuncao(EnumFuncao funcao);
	
	
	/**
	 * Converter uma lista de usuarios para uma lista de select item. <br /> <br />
	 * 
	 * -ID    sera o ID da pessoa. <br />
	 * -LABEL sera o nome da pessoa.<br /><br />
	 * 
	 * <code>
	 * 		SelectItem item = new SelectItem(); <br />
	 *		item.setLabel(((Usuario) entity).getPessoa().getNome()); <br />
	 *		item.setValue(((Usuario) entity).getPessoa().getId()); <br />
	 * </code>
	 * 
	 * 
	 * @param listaUsuario				Lista de usuarios que sera convertida.
	 * @return							Lista de Select Item com usuarios
	 */
	public List<SelectItem> converterListaUsuariosParaListSelectItem (List<Usuario> listaUsuario);
	
	
}
